package 牛客算法篇;

/**
 * Created with IntelliJ IEDA.
 * Description:
 * User:86186
 * Date:2024-03-01
 * Time:16:08
 */

/**
 *
 牛客算法篇:BM28 二叉树的最大深度
 描述
 求给定二叉树的最大深度，
 深度是指树的根节点到任一叶子节点路径上节点的数量。
 最大深度是所有叶子节点的深度的最大值。
 （注：叶子节点是指没有子节点的节点。）

 数据范围：0≤n≤1000000≤n≤100000，树上每个节点的val满足 ∣val∣≤100∣val∣≤100
 要求： 空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)
 示例1
 输入：
 {1,2}
 返回值：
 2
 */
public class maxDepth {
    public static void main(String[] args) {
        TreeNode a = new TreeNode(1);
        TreeNode b = new TreeNode(2);
        TreeNode c = new TreeNode(3);
        TreeNode d = new TreeNode(4);
        TreeNode e = new TreeNode(5);
        a.left = b;
        a.right = c;
        b.left = d;
        b.right = e;
//        System.out.println(maxDepth(a));
    }
    int max = 1;
    public int maxDepth (TreeNode root) {
        // write code here
        if(root == null) return 0;

        max = maxD(root);
        return max;
    }
    public int maxD(TreeNode root){
        if(root == null) return 0;
        int num = 1;
        num += Math.max(maxD(root.left),maxD(root.right));
        return num;
    }
}
